<!--
  Copyright © 2017-2024 Petr Panteleyev <petr-panteleyev@yandex.ru>
  SPDX-License-Identifier: BSD-2-Clause
  -->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:annotation>
        <xsd:documentation xml:lang="en">
            Money Database export file schema.
            Copyright (C) 2017-2023 Petr Panteleyev
        </xsd:documentation>
    </xsd:annotation>

    <xsd:element name="Money">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Icons">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Icon"
                                         type="Icon"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="IconUniqueUUID">
                        <xsd:selector xpath="Icon"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Accounts">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Account"
                                         type="Account"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="AccountUniqueUUID">
                        <xsd:selector xpath="Account"/>
                        <xsd:field xpath="./guid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Cards" minOccurs="0">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Card"
                                         type="Card"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="CardUniqueUUID">
                        <xsd:selector xpath="Card"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Categories">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Category"
                                         type="Category"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="CategoryUniqueUUID">
                        <xsd:selector xpath="Category"/>
                        <xsd:field xpath="./guid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Contacts">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Contact"
                                         type="Contact"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="ContactUniqueUUID">
                        <xsd:selector xpath="Contact"/>
                        <xsd:field xpath="./guid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Currencies">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Currency"
                                         type="Currency"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="CurrencyUniqueUUID">
                        <xsd:selector xpath="Currency"/>
                        <xsd:field xpath="./guid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="ExchangeSecurities" minOccurs="0">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="ExchangeSecurity"
                                         type="ExchangeSecurity"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="ExchangeSecurityUniqueUUID">
                        <xsd:selector xpath="ExchangeSecurity"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Transactions">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Transaction"
                                         type="Transaction"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="TransactionUniqueUUID">
                        <xsd:selector xpath="Transaction"/>
                        <xsd:field xpath="./guid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="Documents">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Document"
                                         type="Document"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="DocumentUniqueUUID">
                        <xsd:selector xpath="Document"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="PeriodicPayments" minOccurs="0">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="PeriodicPayment"
                                         type="PeriodicPayment"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="PeriodicPaymentUniqueUUID">
                        <xsd:selector xpath="PeriodicPayment"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
                <xsd:element name="InvestmentDeals" minOccurs="0">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="InvestmentDeal"
                                         type="InvestmentDeal"
                                         minOccurs="0"
                                         maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:complexType>
                    <xsd:unique name="InvestmentDealUniqueUUID">
                        <xsd:selector xpath="InvestmentDeal"/>
                        <xsd:field xpath="./uuid"/>
                    </xsd:unique>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="Icon">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="bytes" type="xsd:string"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Account">
        <xsd:all>
            <xsd:element name="accountLimit" type="xsd:decimal"/>
            <xsd:element name="categoryUuid" type="UUID"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="accountNumber" type="xsd:string"/>
            <xsd:element name="currencyUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="securityUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="currencyRate" type="xsd:decimal"/>
            <xsd:element name="enabled" type="xsd:boolean"/>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="openingBalance" type="xsd:decimal"/>
            <xsd:element name="type" type="CategoryType"/>
            <xsd:element name="interest" type="xsd:decimal"/>
            <xsd:element name="closingDate" type="xsd:long" minOccurs="0"/>
            <xsd:element name="iconUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="cardType" type="CardType" minOccurs="0"/>
            <xsd:element name="cardNumber" type="xsd:string" minOccurs="0"/>
            <xsd:element name="total" type="xsd:decimal"/>
            <xsd:element name="totalWaiting" type="xsd:decimal"/>
            <xsd:element name="guid" type="UUID"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Category">
        <xsd:all>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="type" type="CategoryType"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="iconUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="guid" type="UUID"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Contact">
        <xsd:all>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="type" type="ContactType"/>
            <xsd:element name="email" type="xsd:string"/>
            <xsd:element name="web" type="xsd:string"/>
            <xsd:element name="mobile" type="xsd:string"/>
            <xsd:element name="phone" type="xsd:string"/>
            <xsd:element name="street" type="xsd:string"/>
            <xsd:element name="city" type="xsd:string"/>
            <xsd:element name="country" type="xsd:string"/>
            <xsd:element name="zip" type="xsd:string"/>
            <xsd:element name="iconUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="guid" type="UUID"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Currency">
        <xsd:all>
            <xsd:element name="default" type="xsd:boolean"/>
            <xsd:element name="description" type="xsd:string"/>
            <xsd:element name="direction" type="Switch"/>
            <xsd:element name="formatSymbol" type="xsd:string"/>
            <xsd:element name="formatSymbolPosition" type="Switch"/>
            <xsd:element name="rate" type="xsd:decimal"/>
            <xsd:element name="showFormatSymbol" type="xsd:boolean"/>
            <xsd:element name="symbol" type="xsd:string"/>
            <xsd:element name="useThousandSeparator" type="xsd:boolean"/>
            <xsd:element name="guid" type="UUID"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
            <xsd:element name="type" type="CurrencyType" minOccurs="0"/>
            <xsd:element name="isin" type="xsd:string" minOccurs="0"/>
            <xsd:element name="registry" type="xsd:string" minOccurs="0"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="ExchangeSecurity">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="secId" type="xsd:string"/>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="shortName" type="xsd:string"/>
            <xsd:element name="isin" type="xsd:string"/>
            <xsd:element name="regNumber" type="xsd:string"/>
            <xsd:element name="faceValue" type="xsd:decimal"/>
            <xsd:element name="issueDate" type="Timestamp"/>
            <xsd:element name="matDate" type="Timestamp" minOccurs="0"/>
            <xsd:element name="daysToRedemption" type="xsd:int" minOccurs="0"/>
            <xsd:element name="group" type="xsd:string"/>
            <xsd:element name="groupName" type="xsd:string"/>
            <xsd:element name="type" type="xsd:string"/>
            <xsd:element name="typeName" type="xsd:string"/>
            <xsd:element name="marketValue" type="xsd:decimal"/>
            <xsd:element name="couponValue" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="couponPercent" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="couponDate" type="Timestamp" minOccurs="0"/>
            <xsd:element name="couponFrequency" type="xsd:int" minOccurs="0"/>
            <xsd:element name="accruedInterest" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="couponPeriod" type="xsd:int" minOccurs="0"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Transaction">
        <xsd:all>
            <xsd:element name="accountCreditedCategoryUuid" type="UUID"/>
            <xsd:element name="accountCreditedUuid" type="UUID"/>
            <xsd:element name="accountCreditedType" type="CategoryType"/>
            <xsd:element name="accountDebitedCategoryUuid" type="UUID"/>
            <xsd:element name="accountDebitedUuid" type="UUID"/>
            <xsd:element name="accountDebitedType" type="CategoryType"/>
            <xsd:element name="amount" type="xsd:decimal"/>
            <xsd:element name="creditAmount" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="checked" type="xsd:boolean"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="contactUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="transactionDate" type="xsd:long" minOccurs="0"/>
            <xsd:element name="day" type="Day" minOccurs="0"/>
            <xsd:element name="invoiceNumber" type="xsd:string"/>
            <xsd:element name="month" type="Month" minOccurs="0"/>
            <xsd:element name="rate" type="xsd:decimal" minOccurs="0"/>
            <xsd:element name="rateDirection" type="Switch" minOccurs="0"/>
            <xsd:element name="type" type="TransactionType"/>
            <xsd:element name="year" type="Year" minOccurs="0"/>
            <xsd:element name="guid" type="UUID"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
            <xsd:element name="parentUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="detailed" type="xsd:boolean"/>
            <xsd:element name="statementDate" type="xsd:long"/>
            <xsd:element name="cardUuid" type="UUID" minOccurs="0"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Document">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="ownerUuid" type="UUID"/>
            <xsd:element name="contactUuid" type="UUID"/>
            <xsd:element name="type" type="DocumentType"/>
            <xsd:element name="fileName" type="xsd:string"/>
            <xsd:element name="date" type="xsd:long"/>
            <xsd:element name="size" type="xsd:int"/>
            <xsd:element name="mimeType" type="xsd:string"/>
            <xsd:element name="description" type="xsd:string"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="PeriodicPayment">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="paymentType" type="PeriodicPaymentType"/>
            <xsd:element name="recurrenceType" type = "RecurrenceType"/>
            <xsd:element name="amount" type="xsd:decimal"/>
            <xsd:element name="dayOfMonth" type="xsd:int"/>
            <xsd:element name="month" type="MonthName"/>
            <xsd:element name="accountDebitedUuid" type="UUID"/>
            <xsd:element name="accountCreditedUuid" type="UUID"/>
            <xsd:element name="contactUuid" type="UUID"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="Card">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="accountUuid" type="UUID"/>
            <xsd:element name="type" type="CardType"/>
            <xsd:element name="number" type="xsd:string"/>
            <xsd:element name="expiration" type="xsd:long"/>
            <xsd:element name="comment" type="xsd:string"/>
            <xsd:element name="enabled" type="xsd:boolean"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="InvestmentDeal">
        <xsd:all>
            <xsd:element name="uuid" type="UUID"/>
            <xsd:element name="accountUuid" type="UUID"/>
            <xsd:element name="securityUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="currencyUuid" type="UUID" minOccurs="0"/>
            <xsd:element name="dealNumber" type="xsd:string"/>
            <xsd:element name="dealDate" type="xsd:string"/>
            <xsd:element name="accountingDate" type="xsd:string"/>
            <xsd:element name="marketType" type="InvestmentMarketType"/>
            <xsd:element name="operationType" type="InvestmentOperationType"/>
            <xsd:element name="securityAmount" type="xsd:int"/>
            <xsd:element name="price" type="xsd:decimal"/>
            <xsd:element name="aci" type="xsd:decimal"/>
            <xsd:element name="dealVolume" type="xsd:decimal"/>
            <xsd:element name="rate" type="xsd:decimal"/>
            <xsd:element name="exchangeFee" type="xsd:decimal"/>
            <xsd:element name="brokerFee" type="xsd:decimal"/>
            <xsd:element name="amount" type="xsd:decimal"/>
            <xsd:element name="dealType" type="InvestmentDealType"/>
            <xsd:element name="created" type="Timestamp"/>
            <xsd:element name="modified" type="Timestamp"/>
        </xsd:all>
    </xsd:complexType>

    <xsd:simpleType name="UUID">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Switch">
        <xsd:restriction base="xsd:int">
            <xsd:enumeration value="0"/>
            <xsd:enumeration value="1"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Day">
        <xsd:restriction base="xsd:int">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="31"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Month">
        <xsd:restriction base="xsd:int">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="12"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Year">
        <xsd:restriction base="xsd:int">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="3000"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CategoryType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="BANKS_AND_CASH"/>
            <xsd:enumeration value="INCOMES"/>
            <xsd:enumeration value="EXPENSES"/>
            <xsd:enumeration value="DEBTS"/>
            <xsd:enumeration value="PORTFOLIO"/>
            <xsd:enumeration value="ASSETS"/>
            <xsd:enumeration value="STARTUP"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ContactType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="PERSONAL"/>
            <xsd:enumeration value="CLIENT"/>
            <xsd:enumeration value="SUPPLIER"/>
            <xsd:enumeration value="EMPLOYEE"/>
            <xsd:enumeration value="EMPLOYER"/>
            <xsd:enumeration value="SERVICE"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="TransactionType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="CARD_PAYMENT"/>
            <xsd:enumeration value="SBP_PAYMENT"/>
            <xsd:enumeration value="CASH_PURCHASE"/>
            <xsd:enumeration value="CHEQUE"/>
            <xsd:enumeration value="WITHDRAWAL"/>
            <xsd:enumeration value="CACHIER"/>
            <xsd:enumeration value="DEPOSIT"/>
            <xsd:enumeration value="TRANSFER"/>
            <xsd:enumeration value="SBP_TRANSFER"/>
            <xsd:enumeration value="INTEREST"/>
            <xsd:enumeration value="DIVIDEND"/>
            <xsd:enumeration value="COUPON"/>
            <xsd:enumeration value="DIRECT_BILLING"/>
            <xsd:enumeration value="CHARGE"/>
            <xsd:enumeration value="FEE"/>
            <xsd:enumeration value="INCOME"/>
            <xsd:enumeration value="PURCHASE"/>
            <xsd:enumeration value="SALE"/>
            <xsd:enumeration value="REFUND"/>
            <xsd:enumeration value="UNDEFINED"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="DocumentType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="BILL"/>
            <xsd:enumeration value="RECEIPT"/>
            <xsd:enumeration value="CONTRACT"/>
            <xsd:enumeration value="STATEMENT"/>
            <xsd:enumeration value="REPORT"/>
            <xsd:enumeration value="NOTIFICATION"/>
            <xsd:enumeration value="INVOICE"/>
            <xsd:enumeration value="PAYSLIP"/>
            <xsd:enumeration value="OTHER"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="PeriodicPaymentType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="MANUAL_PAYMENT"/>
            <xsd:enumeration value="AUTO_PAYMENT"/>
            <xsd:enumeration value="CARD_PAYMENT"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="CurrencyType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="CURRENCY"/>
            <xsd:enumeration value="SECURITY"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="RecurrenceType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="MONTHLY"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CardType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="NONE"/>
            <xsd:enumeration value="VISA"/>
            <xsd:enumeration value="MASTERCARD"/>
            <xsd:enumeration value="MIR"/>
            <xsd:enumeration value="AMEX"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="InvestmentOperationType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="UNKNOWN"/>
            <xsd:enumeration value="PURCHASE"/>
            <xsd:enumeration value="SELL"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="InvestmentMarketType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="UNKNOWN"/>
            <xsd:enumeration value="STOCK_MARKET"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="InvestmentDealType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="UNKNOWN"/>
            <xsd:enumeration value="NORMAL"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="MonthName">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="JANUARY"/>
            <xsd:enumeration value="FEBRUARY"/>
            <xsd:enumeration value="MARCH"/>
            <xsd:enumeration value="APRIL"/>
            <xsd:enumeration value="MAY"/>
            <xsd:enumeration value="JUNE"/>
            <xsd:enumeration value="JULY"/>
            <xsd:enumeration value="AUGUST"/>
            <xsd:enumeration value="SEPTEMBER"/>
            <xsd:enumeration value="OCTOBER"/>
            <xsd:enumeration value="NOVEMBER"/>
            <xsd:enumeration value="DECEMBER"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="Timestamp">
        <xsd:restriction base="xsd:long">
            <xsd:minInclusive value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>
